import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

@Entity('products')
export class Products {
    /**
     * 商品ID
     */
    @PrimaryGeneratedColumn({ type: 'int' })
    id: number;

    /**
     * 所属商家ID
     */
    @Column({ type: 'int' })
    merchant_id: number;
    /**
     * 所属种类ID
     */
    @Column({ type: 'int' })
    category_id: number;
    /**
     * 所属规格类型
     */
    @Column()
    sku_type: string;

    /**
     * 商品名称
     */
    @Column({ type: 'varchar', length: 255 })
    name: string;
    /**
     * 商品封面
     */
    @Column({ type: 'varchar', length: 255 })
    image: string;
    /**
    * 轮播图
    */
    @Column({ type: 'json' })
    image_urls: string[];
    /**
     * 商品描述
     */
    @Column({ type: 'text', nullable: true })
    description: string;

    /**
     * 商品价格
     */
    @Column({ type: 'decimal', precision: 10, scale: 2 })
    price: number;
    /**
         * 商品原价
         */
    @Column({ type: 'decimal', precision: 10, scale: 2 })
    original_price: number;
    /**
     * 推荐：1-推荐 0-不推荐
     */
    @Column({ type: 'int', width: 2, default: 0 })
    is_featured: number;

    /**
     * 状态：1-上架 0-下架
     */
    @Column({ type: 'tinyint', default: 1 })
    status: number;

    /**
     * 创建时间
     */
    @Column({ type: 'datetime', default: () => 'CURRENT_TIMESTAMP' })
    create_time: Date;

    /**
     * 更新时间
     */
    @Column({
        type: 'datetime',
        default: () => 'CURRENT_TIMESTAMP',
        onUpdate: 'CURRENT_TIMESTAMP'
    })
    update_time: Date;
}
@Entity('product_skus')
export class sku {
    /**
     * 商品ID
     */
    @PrimaryGeneratedColumn({ type: 'int' })
    id: number;

    /**
     * 所属商品ID
     */
    @Column({ type: 'int' })
    product_id: number;

    /**
     * 规格组合
     */
    @Column({ name: 'sku_value', type: 'json' })
    sku_name_arr: string[];

    /**
     * 商品价格
     */
    @Column({ type: 'decimal', precision: 10, scale: 2 })
    price: number;
    /**
    * 规格图
    */
    @Column()
    image: string;
    /**
     * 规格库存
     */
    @Column({ type: 'int', default: 0 })
    stock: number;

    /**
     * 创建时间
     */
    @Column({ type: 'datetime', default: () => 'CURRENT_TIMESTAMP' })
    create_time: Date;

    /**
     * 更新时间
     */
    @Column({
        type: 'datetime',
        default: () => 'CURRENT_TIMESTAMP',
        onUpdate: 'CURRENT_TIMESTAMP'
    })
    update_time: Date;
}
@Entity('product_specs')
export class specs {
    /**
     * 商品ID
     */
    @PrimaryGeneratedColumn({ type: 'int' })
    id: number;

    /**
     * 所属商品ID
     */
    @Column({ type: 'int' })
    product_id: number;
    /**
     * 规格属性名
     */
    @Column({ type: 'varchar', length: 200, nullable: true })
    name: string;
    /**
     * 规格组
     */
    @Column({ type: 'json' })
    spec_value: string[];

    /**
     * 创建时间
     */
    @Column({ type: 'datetime', default: () => 'CURRENT_TIMESTAMP' })
    create_time: Date;

    /**
     * 更新时间
     */
    @Column({
        type: 'datetime',
        default: () => 'CURRENT_TIMESTAMP',
        onUpdate: 'CURRENT_TIMESTAMP'
    })
    update_time: Date;
}
